package com.niit.session18;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class HashMapDemo {
	public static void main(String[] args) {
//		HashMap实例化时要指定键值对的数据类型，<>尖括号里左边的数据类型用于指定键的数类型，右边的用于指定值的数据类型
//		和其他集合一样，一般也是使用Map接口来接收HashMap的对象从而实现多态
//		map是映射的意思，键值对就是映射
		Map<String, String> map = new HashMap<String, String>();
//		往HashMap里添加元素使用的是put方法，第一个参数是键(key)第二个是值(value)
		map.put("001", "张三");
		map.put("002", "李四");
		map.put("003", "王五");
//		HashMap的键和值都可以为null,但是键的null也是只可以出现一次
		map.put("004", null);
//		如果添加了重复的键，后面的会覆盖前面的
		map.put("005", null);
		map.put("005", "赵六");
		map.put(null, "赵七");
		System.out.println(map);
//		通过键来获取值
		String string = map.get("001");
		System.out.println(string);
//		通过键来移除某个元素
		map.remove("003");
		System.out.println(map);
/*****************************Map的遍历*************************/
//		遍历Map:通过entrySet()得到一个entrySet对象
		Set<Entry<String, String>> entrySet = map.entrySet();
//		通过增强for循环遍历entrySet
		for (Entry<String, String> entry : entrySet) {
//			通过entrySet的getKey()来获取键，通过getValue()获取值
			System.out.println(entry.getKey()+"------"+entry.getValue());
		}
		
	}

}
